package com.minisoft.utils.excel;

import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelReader;

import java.io.File;
import java.util.List;
import java.util.Map;

/**
 * Excel数据生成Insert
 */
public class ExcelToSqlGenerator {
    public static void main(String[] args) {
        // 读取Excel文件
        File excelFile = new File("D:\\temp\\报备信息.xlsx");
        ExcelReader reader = ExcelUtil.getReader(excelFile);
        List<Map<String, Object>> dataList = reader.readAll();

        // 获取Sheet名称作为表名
        String tableName = reader.getSheetNames().get(0);

        // 生成SQL脚本
        StringBuilder sqlScript = new StringBuilder();
        sqlScript.append("INSERT INTO ").append(tableName).append(" (");

        // 获取列名作为字段
        Map<String, Object> firstRow = dataList.get(0);
        for (String columnName : firstRow.keySet()) {
            sqlScript.append(columnName).append(", ");
        }
        sqlScript.delete(sqlScript.length() - 2, sqlScript.length()); // 移除最后一个逗号和空格
        sqlScript.append(") VALUES ");

        // 生成值部分
        for (Map<String, Object> row : dataList) {
            sqlScript.append("(");
            for (Object value : row.values()) {
                sqlScript.append("'").append(value).append("', ");
//                if (value instanceof String) {
//                } else {
//                    sqlScript.append(value).append(", ");
//                }
            }
            sqlScript.delete(sqlScript.length() - 2, sqlScript.length()); // 移除最后一个逗号和空格
            sqlScript.append("), ");
        }
        sqlScript.delete(sqlScript.length() - 2, sqlScript.length()); // 移除最后一个逗号和空格

        // 输出SQL脚本
        System.out.println(sqlScript.toString());
    }
}
